/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.unicon.autoservicio.view.bean;

import com.unicon.autoservicio.dao.FacturacionDAO;
import com.unicon.sdc.ds.ws.DetalleEntregaClienteObraBean;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.event.PhaseId;

/**
 *
 * @author jcabrera
 */
public class ConsultaEntregasClienteObraBean extends BaseManageBean  {
    
     private Date desde;
     private Date hasta;
     private String codigoAcuerdo;
     private List<DetalleEntregaClienteObraBean> lista;
     private String mensajeEntregasClienteObra;
     private Double total;
     
     
    public  ConsultaEntregasClienteObraBean(){
    desde=new Date(System.currentTimeMillis());
    hasta=new Date(System.currentTimeMillis());
    codigoAcuerdo="";
    lista= new ArrayList<DetalleEntregaClienteObraBean>();
    mensajeEntregasClienteObra="";
    total=0.0;
    
    }

    /**
     * @return the desde
     */
    public Date getDesde() {
        return desde;
    }

    /**
     * @param desde the desde to set
     */
    public void setDesde(Date desde) {
        this.desde = desde;
    }

    /**
     * @return the hasta
     */
    public Date getHasta() {
        return hasta;
    }

    /**
     * @param hasta the hasta to set
     */
    public void setHasta(Date hasta) {
        this.hasta = hasta;
    }

  
    
      public boolean btnBuscarActionPerformed(ActionEvent event) {
       lista.clear();
       setTotal(0.0);

        if (!event.getPhaseId().equals(PhaseId.INVOKE_APPLICATION)) {
            event.setPhaseId(PhaseId.INVOKE_APPLICATION);
            event.queue();
            return true;
        }
        FacturacionDAO facturacionDao = new FacturacionDAO();
        UsuarioBean usuarioBean = getSessionUser();
        
        lista=facturacionDao.obtenerResumenEntregasClienteObra(desde, hasta,  getCodigoAcuerdo(), getSelectedObra(), usuarioBean.getCodigoCliente(), usuarioBean.getUsuario(), usuarioBean.getClave());
       
    
        
        if(lista.size()>0){
        calcularTotal();
        }
        
      
        return true;
    }

    /**
     * @return the lista
     */
    public List<DetalleEntregaClienteObraBean> getLista() {
        return lista;
    }

    /**
     * @param lista the lista to set
     */
    public void setLista(List<DetalleEntregaClienteObraBean> lista) {
        this.lista = lista;
    }

    /**
     * @return the codigoAcuerdo
     */
    public String getCodigoAcuerdo() {
        return codigoAcuerdo;
    }

    /**
     * @param codigoAcuerdo the codigoAcuerdo to set
     */
    public void setCodigoAcuerdo(String codigoAcuerdo) {
        this.codigoAcuerdo = codigoAcuerdo;
    }
    
      public String getExportarReporteEntregaClienteObra() {
           
        FacesContext fc = FacesContext.getCurrentInstance();
        UsuarioBean usuarioBean = getSessionUser();
        
        return fc.getExternalContext().getRequestContextPath() + "/ExportarPDF?reporte=ExportarReporteEntregaPorClienteObra&codigoCliente=" + usuarioBean.getCodigoCliente() + "&desde=" + String.valueOf(getDesde().getTime()) + "&hasta=" + String.valueOf(getHasta().getTime()) + "&codigoObra=" + getSelectedObra()  + "&codigoAcuerdo=" + getCodigoAcuerdo() ;
    }

    /**
     * @return the mensajeEntregasClienteObra
     */
    public String getMensajeEntregasClienteObra() {
        return mensajeEntregasClienteObra;
    }

    /**
     * @param mensajeEntregasClienteObra the mensajeEntregasClienteObra to set
     */
    public void setMensajeEntregasClienteObra(String mensajeEntregasClienteObra) {
        this.mensajeEntregasClienteObra = mensajeEntregasClienteObra;
    }

    /**
     * @return the total
     */
    public Double getTotal() {
     
        return total +(0.18*total) ;
    }

    /**
     * @param total the total to set
     */
    public void setTotal(Double total) {
        this.total = total;
    }

    private void calcularTotal() {
      for(DetalleEntregaClienteObraBean e:lista){
          total+=e.getTotalResumen();
      
      }
    }

}
